nodejs中间层后端代理解决跨域 您所在的位置:网站首页 node js 后端 nodejs中间层后端代理解决跨域

nodejs中间层后端代理解决跨域

2022-12-22 05:24| 来源: 网络整理| 查看: 265

nodejs中间层后端代理解决跨域

⼀、请求时跨域,⽆法请求

1. 

在⽆论axios还是ajax请求时,若不是⾃⼰后端给写好的后端接⼝地址,其他接⼝地址若⽆该地址内部对应的配置时,浏览器请求数据是请求不

到的,会发⽣跨域问题

2. 

如前端随便请求⼀个⽹上的后端地址:

axios.get('http://is.snssdk.com/api/news/feed/v51/').then(res=>{

  console.log(res)

})

请求不到,会发⽣跨域

跨域报错信息

⼆、解决办法

可以在本地启⼀个nodejs服务器转接代理,前端请求本地服务器,可在⾃⼰代码中设置跨域可访问,⽽后端转接请求后端是没有跨域问题的(需

要真实请求的地址设置可访问才可取得数据),跨域问题是浏览器的限制。

1. 

nodejs代码

const express = require('express')

const axios = require('axios').default  //

需要

npm i axios

var cors = require('cors')  //

需要

npm i cors

const app = express()

app.use(cors())  // 

允许跨域调⽤

app.use(express.urlencoded({

  extended: false

}))

app.use(express.json())

// 

请求对应路径

app.get('/toutiao', async (req, res) => {

   const result = await axios.get('http://is.snssdk.com/api/news/feed/v51/')

   res.send(result.data)

})

// 

对所有代理请求进⾏封装

app.post('/proxy', async(req, res) => {

  const url = req.body.url

  const result = await axios.get(url)

  res.send(result.data)

})

app.listen(3000, () => {

  console.log(`

服务器运⾏在

3000

端⼝

`)

})

2. 

前端请求代码



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有